モジュール詳細:反転赤色暗号

赤を眺めることは、このモジュール上ではごく普通だ。

モジュールは、3つのディスプレー、キーボード、2つの矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。

右の矢印を押すと、次のページに移動できる。左の矢印を押すと前のページに移動できる。ページは全部で2ページある。

ページ1には、上のディスプレーに6文字の暗号化された単語、真ん中のディスプレーに6文字の文字列が表示される。暗号化された単語に「J」が含まれている場合、同じ位置にある真ん中のディスプレーの文字に置き換える。3ステップ完了後、その文字を再び「J」に戻す。

ページ2には、3つのディスプレーすべてに単語が表示される。上の単語はキーワード1、真ん中の単語はキーワード2、下の単語はキーワード3になる。

以下のルールに従って単語を解読する。

ステップ1:三枡暗号

このステップでは3つの行列とページ1の上のディスプレーに表示された暗号化された単語が必要となる。

1つ目の行列を作成するには、キーワード1にJがある場合はそれをIに変換し、重複する英字の2文字目以降を削除する。それから、アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最初の数字が奇数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを5×5の行列の形に配置する。

2つ目の行列を作成するには、キーワード2にJがある場合はそれをIに変換し、重複する英字の2文字目以降を削除する。それから、アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの二番目の数字が偶数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを別の5×5の行列の形に配置する。

3つ目の行列を作成するには、キーワード3にJがある場合はそれをIに変換し、重複する英字の2文字目以降を削除する。それから、アルファベット全体の文字列(Jを除外)を取得し、キーワードに表示された英字を削除する。

シリアルナンバーの最後の数字が奇数の場合、キーワードの末尾にアルファベットの文字列を配置する。そうでない場合、キーワードの先頭にアルファベットの文字列を配置する。

長さが25の文字列を取得したら、それを別の5×5の行列の形に配置する。これで3つの行列が揃う。

>暗号化された単語を3組の英字のペアに分割する。各ペアに対して、以下の処理を行う。

  • 最初の英字を1つ目の行列から探し、その行と列を取得する。
  • 次に、2番目の英字を2つ目の行列から探し、その行と列を取得する。
  • 1つ目の行列の行と2つ目の行列の列を3つ目の行列に使用し、最初の英字を得る。
  • 1つ目の行列の列と2つ目の行列の行を3つ目の行列に使用し、2番目の英字を得る。

出来上がった文字が新しい暗号化された単語となる。

暗号化された単語:BEWCSG
キー1:MALBCDEFGHIKNOPQRSTUVWXYZ
キー2:ABCDFGIKLMNOQTUVWXYZSPHER
キー3:ABCDEFGIKLNPQSTVWXYZHUMOR

MALBC|ABCDF|ABCDE
DEFGH|GIKLM|FGIKL
IKNOP|NOQTU|NPQST
QRSTU|VWXYZ|VWXYZ
VWXYZ|SPHER|HUMOR

BE -> DO
WC -> MB
SG -> VI
新たな暗号化された単語:DOMBVI

ステップ2:共役行列分割

このステップでは、ステップ1でキーワード1とキーワード2を用いて作成した2つの行列と暗号化された単語が必要となる。

暗号化された単語の各英字ごとに以下の手順に従う。

  • 1つ目の行列から数字の組を見つける。
  • 上の数字が行、下の数字が列になるように行と列の数字の組を並べる。
  • ひとつ前の行と列の数字の組の右隣に並べた数字を書き留める。

数字全体を読み順で読み取り、それを6組の数字のペアに分割する。

これらの数字を行/列の数字として2つ目の行列に使用し、新たな英字を獲得する。

出来上がった文字が新しい暗号化された単語となる。

暗号化された単語:DOMBVI

12345|12345
1MALBC|ABCDF1
2DEFGH|GIKLM2
3IKNOP|NOQTU3
4QRSTU|VWXYZ4
5VWXYZ|SPHER5

D -> 21
O -> 34
M -> 11
B -> 14
V -> 51
I -> 31

231153
141411

23 -> K
11 -> A
53 -> H
14 -> D
14 -> D
11 -> A
新たな暗号化された単語:KAHDDA

ステップ3:プレイフェア暗号

このステップでは、ステップ1でキーワード1を用いて作成された行列とステップ2で取得した暗号化された単語が必要になる。

暗号化された文字列を2つずつのペアに分割し、各ペアについて以下の手順を実行する。

  • 2つの英字が全く同じ場合、その英字を保持する。
  • そうでない場合、その英字が行列の同じ行に存在するなら、その左隣にある英字にペアの英字を置き換える。段の端はループする。
  • そうでない場合、その英字が行列の同じ列に存在するなら、その真上にある英字にペアの英字を置き換える。列の端はループする。
  • そうでない場合、その英字と同じ行にあり、ペアのもう一方の英字と同じ列にある英字にそれぞれ置き換える。

最初にJであった英字をJに置き換えることで、復号された単語を取得できることに注意すること。

暗号化された単語:KAHDDA

MALBC
DEFGH
IKNOP
QRSTU
VWXYZ

KA -> RE
HD -> DE
DA -> EM
復号された単語:REDEEM

復号された単語を取得したら、それを送信する。入力を開始すると、全てのディスプレーが暗転し下のディスプレーに入力された文字が表示される。

入力を消去するには、いずれかの矢印をクリックする。ページが移動し、入力した文字列が消去される。6文字を超える入力はできないようになっている。

入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。ミスが記録された場合、モジュールの最初のページに戻るが、暗号の再生成はされない。